// 使用express快速搭建服务器

// 1. 引入express
const express = require('express')

// 2. 调用express函数,创建应用对象
const app = express()

// 3. 定义路由
// 提供买烟的服务, 有很多烟,所以当别人跟我买烟的时候,需要传递参数,告诉我要买哪个烟
app.get('/smoke', (req, res) => {
  const arr = ['软华子', '玉溪', '黄鹤楼', '芙蓉王']
  // 通过req.query可以获取到传递上来的所有的查询字符串信息
  // 获取烟的名字
  const { smokeName } = req.query
  if (arr.includes(smokeName)) {
    res.send(`给你${smokeName}`)
  } else {
    res.send(`不好意思,没有这个烟`)
  }
})

// 需求: 提供酒的服务
// 定义路由参数的方式: 在路径后面拼接. 写法: /:参数名
// 注意:
// 1. 如果定义了路由参数,则默认为必填项.所以发送请求的时候不传,则练路由都匹配不上
// 2. 路由参数设置为可选的方式是在参数名后面加问号
// 3. 一般必填参数在前面,可选参数在后面
// app.get('/drink/:name?/:xxx?', (req, res) => {
//   const arr = ['茅台', '玉冰烧', '牛栏山', '剑南春', '菠萝啤']
//   // 获取路由参数
//   console.log(req.params)
// })
// app.get('/drink/:name?', (req, res) => {
//   const arr = ['茅台', '玉冰烧', '牛栏山', '剑南春', '菠萝啤']
//   // 获取路由参数
//   const { name } = req.params

//   if (arr.includes(name)) {
//     res.send(`给你${name}`)
//   } else {
//     res.send('去小孩儿桌吧')
//   }
// })

app.get('/xxx', (req, res) => {
  // 获取请求头中指定信息
  res.send(req.get('host'))
})

app.post('/xxx', (req, res) => {
  // 获取post请求主体的信息. 注意:暂时获取不到
  console.log(req.body)
})

// 4. 启动服务
app.listen(5000, (error) => {
  if (error) console.log('服务器启动失败', error)
  else console.log('服务器启动成功')
})
